import {
  showMsg
} from "../utlis/interact";

//请求根路径
const BASE_URL = 'https://tea.qingnian8.com/';

/*
 * 全局请求封装
 * @param path 请求路径
 * @param method 请求类型(GET/POST/DELETE等)
 * @oaram data 请求体数据
 * @param loading 请求未完成是是否显示加载中，默认为true
 */
export default (path, data = {}, method = "GET", loading = true) => {
  // 获取存储token
  const token = uni.getStorageSync("token");

  if (loading) {
    uni.showLoading({
      title: "加载中",
      mask: true
    });
  };
  //根据token进行调用函数
  if (token != '') {
    return tokenRequest(path, method, data, token)
  } else {
    return noTokenRequest(path, method, data)
  }
};

// 无token时发送请求函数
function noTokenRequest(path, method, data) {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + path,
      method,
      data,
      success(response) {
        resolve(response.data);
      },
      fail(err) {
        showMsg('服务响应异常');
        console.error(err);
        reject(err);
      },
      complete() {
        uni.hideLoading();
      }
    });
  });
}


// 有token时发送请求函数
function tokenRequest(path, method, data, token) {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + path,
      method,
      data,
      header: {
        "token": token
      },
      success(response) {
        resolve(response.data);
      },
      fail(err) {
        showMsg('服务响应异常');
        console.error(err);
        reject(err);
      },
      complete() {
        uni.hideLoading();
      }
    });
  });
}